home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_scrollpane.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  88 lines

  1. #ifndef __EWL_SCROLLPANE_H__
  2. #define __EWL_SCROLLPANE_H__
  3.  
  4. /**
  5.  * @file ewl_scrollpane.h
  6.  * @defgroup Ewl_ScrollPane ScrollPane: A Scrollable Viewing Area
  7.  * Provides a scrollable area for viewing large sets of widgets in a smaller
  8.  * viewable region.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /scrollpane/file
  15.  * @themekey /scrollpane/group
  16.  */
  17.  
  18. /**
  19.  * The scrollpane provides a way to pan around large collections of images.
  20.  */
  21. typedef struct Ewl_ScrollPane Ewl_ScrollPane;
  22.  
  23. /**
  24.  * @def EWL_SCROLLPANE(scrollpane)
  25.  * Typecasts a pointer to an Ewl_ScrollPane pointer.
  26.  */
  27. #define EWL_SCROLLPANE(scrollpane) ((Ewl_ScrollPane *) scrollpane)
  28.  
  29. /**
  30.  * @struct Ewl_ScrollPane
  31.  * Inherits from Ewl_Container and extends it to enclose a single widget in
  32.  * vertical and horizontal scrollbars for panning around displaying different
  33.  * regions of the enclosed widget.
  34.  */
  35. struct Ewl_ScrollPane
  36. {
  37.     Ewl_Container         container;  /**< Inherit from Ewl_Container */
  38.  
  39.     Ewl_Widget           *overlay;    /**< Clips the enclosed widget */
  40.     Ewl_Widget           *box;        /**< Lays out enclosed widget */
  41.     Ewl_Widget           *hscrollbar; /**< Horizontal scrollbar */
  42.     Ewl_Widget           *vscrollbar; /**< Vertical scrollbar */
  43.     Ewl_ScrollPane_Flags  hflag;      /**< Flags for horizontal scrollbar */
  44.     Ewl_ScrollPane_Flags  vflag;      /**< Flags for vertical scrollbar */
  45. };
  46.  
  47. Ewl_Widget     *ewl_scrollpane_new(void);
  48. int             ewl_scrollpane_init(Ewl_ScrollPane *s);
  49.  
  50. void            ewl_scrollpane_hscrollbar_flag_set(Ewl_ScrollPane *s,
  51.                            Ewl_ScrollPane_Flags f);
  52. void            ewl_scrollpane_vscrollbar_flag_set(Ewl_ScrollPane *s,
  53.                            Ewl_ScrollPane_Flags f);
  54.  
  55. Ewl_ScrollPane_Flags ewl_scrollpane_hscrollbar_flag_get(Ewl_ScrollPane *s);
  56. Ewl_ScrollPane_Flags ewl_scrollpane_vscrollbar_flag_get(Ewl_ScrollPane *s);
  57.  
  58. double          ewl_scrollpane_hscrollbar_value_get(Ewl_ScrollPane *s);
  59. double          ewl_scrollpane_vscrollbar_value_get(Ewl_ScrollPane *s);
  60.  
  61. void            ewl_scrollpane_hscrollbar_value_set(Ewl_ScrollPane *s, double val);
  62. void            ewl_scrollpane_vscrollbar_value_set(Ewl_ScrollPane *s, double val);
  63.  
  64. double          ewl_scrollpane_hscrollbar_step_get(Ewl_ScrollPane *s);
  65. double          ewl_scrollpane_vscrollbar_step_get(Ewl_ScrollPane *s);
  66.  
  67. /*
  68.  * Internally used callbacks, override at your own risk.
  69.  */
  70. void ewl_scrollpane_configure_cb(Ewl_Widget *w, void *ev_data,
  71.                             void *user_data);
  72. void ewl_scrollpane_box_configure_cb(Ewl_Widget *w, void *ev_data,
  73.                             void *user_data);
  74. void ewl_scrollpane_focus_jump_cb(Ewl_Widget *w, void *ev_data,
  75.                                   void *user_data);
  76. void ewl_scrollpane_hscroll_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  77. void ewl_scrollpane_vscroll_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  78. void ewl_scrollpane_wheel_scroll_cb(Ewl_Widget *w, void *ev_data,
  79.                             void *user_data);
  80.  
  81. void ewl_scrollpane_child_resize_cb(Ewl_Container *parent, Ewl_Widget *child);
  82.  
  83. /**
  84.  * @}
  85.  */
  86.  
  87. #endif                /* __EWL_SCROLLPANE_H__ */
  88.